nexus\api\rtapi/
camera.rs

1use super::RealTimeData;
2
3#[derive(Debug, Clone)]
4#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
5pub struct CameraData {
6    /// Camera position in the game world.
7    pub camera_position: [f32; 3],
8
9    /// Camera facing direction.
10    pub camera_facing: [f32; 3],
11
12    /// Camera field of view.
13    pub camera_fov: f32,
14
15    /// Whether action camera is enabled.
16    pub is_action_camera: bool,
17}
18
19impl CameraData {
20    /// Reads camera data from the given data pointer.
21    ///
22    /// # Safety
23    /// The pointer must be safe to read from.
24    pub unsafe fn read(data: *const RealTimeData) -> Self {
25        unsafe {
26            Self {
27                camera_position: (*data).camera_position,
28                camera_facing: (*data).camera_facing,
29                camera_fov: (*data).camera_fov,
30                is_action_camera: (*data).is_action_camera.is_action_camera(),
31            }
32        }
33    }
34}